80075030
J 80402000
LUI K0, $8010
NOP

;K0, K1, and AT are available
80402000
;Preserve
SD AT, $57B0 (K0)
;Copy to/from specified backup SRAM
LUI K0, $800A
LB K1, $5060 (K0)
BNEZ K1, From
;CopyTo if L pressed
LUI K0, $8010
LH K1, $5304 (K0)
XORI K1, K1, $0020
BNEZ K1, NoCopy
;CopyTo
LUI K0, $801E
ADDIU K0, K0, $6010
LUI K1, $8040
ADDIU K1, K1, $4000
SW R0, $FFF8 (K1)
SW R0, $FFFC (K1)
ToLoop:
LW AT, $0000 (K0)
SW AT, $0000 (K1)
ADDIU K0, K0, $0004
ADDIU K1, K1, $0004
LUI AT, $801E
ADDIU AT, AT, $6580
BEQ K0, AT, NoCopy
NOP
LUI AT, $8040
ADDIU AT, AT, $4570
BEQ K0, AT, NoCopy
NOP
J ToLoop
NOP
From:
LUI K0, $8040
LW K1, $3FFC (K0)
BNEZ K1, NoCopy
ADDIU K0, K0, $4000
LUI K1, $801E
ADDIU K1, K1, $6010
SW K1, $FFFC (K0)
J ToLoop
NOP
NoCopy:
;Co Op SRAM fix if in multi mode
LUI K0, $800A
LB K1, $5060 (K0)
BEQZ K1, End
;Copy to multi or from multi
LUI K0, $8040
LW K1, $3FF8 (K0)
BNEZ K1, Saverize
;Uberize if L is pressed
LUI K0, $8010
LH K1, $5304 (K0)
XORI K1, K1, $0020
BNEZ K1, End
;Uberize
;Copy to multi
LUI K1, $8040
SW K1, $3FF8 (K1)
LUI K1, $8010
ADDIU K1, K1, $ED66
LUI K0, $8040
ADDIU K0, K0, $415C
One:
LH AT, $0000 (K0)
SH AT, $0000 (K1)
ADDIU K0, K0, $0002
ADDIU K1, K1, $0002
LUI AT, $8040
ADDIU AT, AT, $41D2
BEQL K0, AT, One
ADDIU K1, K1, $002A
LUI AT, $8040
ADDIU AT, AT, $4248
BEQL K0, AT, One
ADDIU K1, K1, $002A
LUI AT, $8040
ADDIU AT, AT, $42BE
BNE K0, AT, Two
NOP
ADDIU K1, K1, $002A
ADDIU K0, K0, $FE28
J One
NOP
Two:
LUI AT, $8040
ADDIU AT, AT, $415C
BNE K0, AT, One
NOP
J End
NOP
Saverize:
;Copy from multi
LUI K1, $8010
ADDIU K1, K1, $ED66
LUI K0, $801E
ADDIU K0, K0, $616C
Bob:
LH AT, $0000 (K1)
SH AT, $0000 (K0)
ADDIU K0, K0, $0002
ADDIU K1, K1, $0002
LUI AT, $801E
ADDIU AT, AT, $61E2
BEQL K0, AT, Bob
ADDIU K1, K1, $002A
LUI AT, $801E
ADDIU AT, AT, $6258
BEQL K0, AT, Bob
ADDIU K1, K1, $002A
LUI AT, $801E
ADDIU AT, AT, $62CE
BNE K0, AT, Bill
NOP
ADDIU K1, K1, $002A
ADDIU K0, K0, $FE28
J Bob
NOP
Bill:
LUI AT, $801E
ADDIU AT, AT, $616C
BNE K0, AT, Bob
NOP
End:
LUI K0, $8010
J 80075038
ADDIU K0, K0, $5790

Current Assembly:

81075030 0810
81075032 0800
81075034 3C1A
81075036 8010
81075038 2400

81402000 FF41
81402002 57B0
81402004 3C1A
81402006 800A
81402008 835B
8140200A 5060
8140200C 1760
8140200E 0018
81402010 3C1A
81402012 8010
81402014 875B
81402016 5304
81402018 3B7B
8140201A 0020
8140201C 1760
8140201E 001D
81402020 3C1A
81402022 801E
81402024 275A
81402026 6010
81402028 3C1B
8140202A 8040
8140202C 277B
8140202E 4000
81402030 AF60
81402032 FFF8
81402034 AF60
81402036 FFFC
81402038 8F41
8140203A 0000
8140203C AF61
8140203E 0000
81402040 275A
81402042 0004
81402044 277B
81402046 0004
81402048 3C01
8140204A 801E
8140204C 2421
8140204E 6580
81402050 103A
81402052 0010
81402054 2400
81402058 3C01
8140205A 8040
8140205C 2421
8140205E 4570
81402060 103A
81402062 000C
81402064 2400
81402068 0810
8140206A 080E
8140206C 2400
81402070 3C1A
81402072 8040
81402074 8F5B
81402076 3FFC
81402078 1760
8140207A 0006
8140207C 275A
8140207E 4000
81402080 3C1B
81402082 801E
81402084 277B
81402086 6010
81402088 AF5B
8140208A FFFC
8140208C 0810
8140208E 080E
81402090 2400
81402094 3C1A
81402096 800A
81402098 835B
8140209A 5060
8140209C 1360
8140209E 0043
814020A0 3C1A
814020A2 8040
814020A4 8F5B
814020A6 3FF8
814020A8 1760
814020AA 0024
814020AC 3C1A
814020AE 8010
814020B0 875B
814020B2 5304
814020B4 3B7B
814020B6 0020
814020B8 1760
814020BA 003C
814020BC 3C1B
814020BE 8040

814020C0 AF7B
814020C2 3FF8
814020C4 3C1B
814020C6 8010
814020C8 277B
814020CA ED66
814020CC 3C1A
814020CE 8040
814020D0 275A
814020D2 415C
814020D4 8741
814020D6 0000
814020D8 A761
814020DA 0000
814020DC 275A
814020DE 0002
814020E0 277B
814020E2 0002
814020E4 3C01
814020E6 8040
814020E8 2421
814020EA 41D2
814020EC 503A
814020EE FFF9
814020F0 277B
814020F2 002A
814020F4 3C01
814020F6 8040
814020F8 2421
814020FA 4248
814020FC 503A
814020FE FFF5
81402100 277B
81402102 002A
81402104 3C01
81402106 8040
81402108 2421
8140210A 42BE
8140210C 143A
8140210E 0005
81402110 2400
81402114 277B
81402116 002A
81402118 275A
8140211A FE28
8140211C 0810
8140211E 0835
81402120 2400
81402124 3C01
81402126 8040
81402128 2421
8140212A 415C
8140212C 143A
8140212E FFE9
81402130 2400
81402134 0810
81402136 086B
81402138 2400
8140213C 3C1B
8140213E 8010
81402140 277B
81402142 ED66
81402144 3C1A
81402146 801E
81402148 275A
8140214A 616C
8140214C 8761
8140214E 0000
81402150 A741
81402152 0000
81402154 275A
81402156 0002
81402158 277B
8140215A 0002
8140215C 3C01
8140215E 801E
81402160 2421
81402162 61E2
81402164 503A
81402166 FFF9
81402168 277B
8140216A 002A
8140216C 3C01
8140216E 801E
81402170 2421
81402172 6258
81402174 503A
81402176 FFF5
81402178 277B
8140217A 002A
8140217C 3C01
8140217E 801E

81402180 2421
81402182 62CE
81402184 143A
81402186 0005
81402188 2400
8140218C 277B
8140218E 002A
81402190 275A
81402192 FE28
81402194 0810
81402196 0853
81402198 2400
8140219C 3C01
8140219E 801E
814021A0 2421
814021A2 616C
814021A4 143A
814021A6 FFE9
814021A8 2400
814021AC 3C1A
814021AE 8010
814021B0 0801
814021B2 D40E
814021B4 275A
814021B6 5790
